package io;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * 缓冲输出流的写缓冲问题
 */
public class FlushDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("bos.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        String line = "我祈祷拥有一颗透明的心灵，和会流泪的眼睛。";
        byte[] data = line.getBytes(StandardCharsets.UTF_8);
//        fos.write(data);
        bos.write(data);//存入内部缓冲区，只有缓冲区满了才会真实写出一次
        /*
            flush:冲水
            flush()方法可以将缓冲输出流内部缓冲区中已经缓存的一句一次性写出
         */
        bos.flush();//强行将数据写出
        System.out.println("写出完毕");
        //缓冲流关闭时会自定调用一次flush方法，确保所有数据都会写出
        bos.close();

    }
}





